<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   
      <title>C.2. Depuraci&oacute;n de errores al intentar ejecutar informes JasperReports en gvHidra</title>
      <meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2">
      <link rel="home" href="indice.html" title="Manual Usuario gvHidra">
      <link rel="up" href="apc.html" title="Ap&eacute;ndice C. Listados Jasper en gvHIDRA">
      <link rel="prev" href="apc.html" title="Ap&eacute;ndice C. Listados Jasper en gvHIDRA">
      <link rel="next" href="apcs03.html" title="C.3. Recomendaciones y generalidades sobre integraci&oacute;n gvHidra y Jasper">
   </head>
   <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
      <div class="navheader">
         <table width="100%" summary="Navigation header">
            <tr>
               <th colspan="3" align="center">C.2. Depuraci&oacute;n de errores al intentar ejecutar informes JasperReports en gvHidra</th>
            </tr>
            <tr>
               <td width="20%" align="left"><a accesskey="p" href="apc.html">Anterior</a>&nbsp;
               </td>
               <th width="60%" align="center">Ap&eacute;ndice C. Listados Jasper en gvHIDRA</th>
               <td width="20%" align="right">&nbsp;<a accesskey="n" href="apcs03.html">Siguiente</a></td>
            </tr>
         </table>
         <hr>
      </div>
      <div class="section" title="C.2. Depuraci&oacute;n de errores al intentar ejecutar informes JasperReports en gvHidra">
         <div class="titlepage">
            <div>
               <div>
                  <h2 class="title" style="clear: both"><a name="d4e8507"></a>C.2. Depuraci&oacute;n de errores al intentar ejecutar informes JasperReports en gvHidra
                  </h2>
               </div>
            </div>
         </div>
             
             
         <p>Para activar el modo de depuraci&oacute;n de informes Jasper en GvHidra, dentro del proyecto PHP en el que estemos trabajando iremos
            al fichero: include/jasper/modulosPHP/informeJasper.PHP
         </p>
             
         <p>Y dentro de el, hay que moverse a la linea 2 y cambiar la instrucci&oacute;n:</p>
         
                 
         <div class="informalexample">
                      <pre class="programlisting">

			define('DEBUG', FALSE);
			
			</pre>
                    </div>
         
         <p>por:</p>
         
                 
         <div class="informalexample">
                      <pre class="programlisting">

			define('DEBUG', TRUE);
			
			</pre>
                    </div>
             
         <p>y a partir de ese momento los listados ya no se exportar&aacute;n a PDF ni se visualizar&aacute;n y en su lugar se imprimir&aacute; en el navegador
            toda la informaci&oacute;n siguiente:
         </p>
         	
         <div class="itemizedlist">
            <ul class="itemizedlist" type="disc">
               <li class="listitem">
                  <p>comando que asigna todas las variables de entorno que requieren la m&aacute;quina virtual de java y jasperreports para poder ejecutarse
                     correctamente. En principio esto s&oacute;lo ser&aacute; &uacute;til cuando se haya instalado la aplicaci&oacute;n en un nuevo servidor web y queramos
                     comprobar que la instalaci&oacute;n ha sido correcta, ya que lo que se visualiza son todos los directorios en los que se va a buscar
                     los ficheros jar's que contienen los ejecutables de jasperreports y otras librerias necesarias.
                  </p>
               </li>
               <li class="listitem">
                  <p>comando que solicita la ejecuci&oacute;n de la libreria Java de Adaptaci&oacute;n de JasperReports a gvHidra, es decir: InformeJasper.class</p>
               </li>
               <li class="listitem">
                  <p>los resultados obtenidos, que variar&aacute;n seg&uacute;n haya sucedido un error o no y tambi&eacute;n seg&uacute;n el momento en el que se haya producido
                     el error.
                  </p>
               </li>
            </ul>
         </div>
         	
         <p>En el caso de que el error est&eacute; arreglado y funcione todo bien se presentar&aacute;:</p>
         	
         <div class="itemizedlist">
            <ul class="itemizedlist" type="disc">
               <li class="listitem">
                  <p>El fichero XML que intercambian InformeJasper.php y InformeJasper.class con la solicitud del informe a lanzar, que se compone
                     de una primera parte en la que veremos el DTD que debe seguir el fichero xml y a continuaci&oacute;n veremos los par&aacute;metros que se
                     han pasado.
                  </p>
                  			  
                  <p>Hay que revisar que todos los par&aacute;metros que el usuario introduzca se envien con el valor correcto. Existe la posibilidad
                     de que el fichero XML no se haya podido generar y ese caso lo detectaremos f&aacute;cilmente porque no se mostrar&aacute; el fichero en
                     el navegador.
                  </p>
                  	
               </li>
            </ul>
         </div>
         	
         <p>En el caso de que el error haya surgido al intentar ejecutar el informe con los par&aacute;metros y la conexi&oacute;n pasada, que es el
            caso m&aacute;s habitual, se nos presentar&aacute; un mensaje al final del navegador que dir&aacute; algo similar a:
         </p>
         
                 
         <div class="informalexample">
                      <pre class="programlisting">
			-informeJasper.php: No se gener&oacute; el fichero resultado: /tmp/listadoAlumnosJasper_XiAaZx.pdf
			</pre>
                    </div>
         	
         <p>Y justo arriba de este mensaje aparecer&aacute; toda la pila de mensajes de error devuelta por JasperReports, por ejemplo si no pasamos
            el valor de un par&aacute;metro requerido obtendriamos un mensaje como &eacute;ste:
         </p>
         	
                 
         <div class="informalexample">
                      <pre class="programlisting">

Resultado Ejecuci&oacute;n: net.sf.jasperreports.engine.JRException: Error executing SQL statement for : 
listadoAlumnosJasper at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:141) 
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:682) at 
net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:614) at 
net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:892) at 
net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:716) at 
net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:669) at 
net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63) at 
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402) at 
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234) at 
InformeJasper.createResultFile(InformeJasper.java:282) at 
InformeJasper.cargaFichDatosEntrada(InformeJasper.java:724) at 
InformeJasper.main(InformeJasper.java:338) Caused by: org.postgresql.util.PSQLException: 
No se ha especificado un valor para el par&aacute;metro 1. at 
org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(SimpleParameterList.java:146) at 
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:182) at 
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452) at 
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351) at 
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:255) at 
net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:135) ... 
11 more	
			</pre>
                    </div>
         	
         <p>N&oacute;tese que en primer lugar encontramos todos los m&eacute;todos del API de JasperReports que han fallado empezado por el primer m&eacute;todo
            que haya abortado su ejecuci&oacute;n, y que debe acabar llegando a la clase InformeJasper.class A continuaci&oacute;n aparece un mensaje
            "Caused by:" que es la linea m&aacute;s importante de todo el listado ya que en ella JasperReports intentar&aacute; explicarnos la causa
            del error .
         </p>
         	
         	
         <p> Seguiremos intentado arregalr el error hasta que al lanzarlo en el navegador ya no aparezca la pila de mensajes de error
            y tampoco aparezca el aviso de:
         </p>
         
         
                 
         <div class="informalexample">
                      <pre class="programlisting">

-informeJasper.php: No se gener&oacute; el fichero resultado:
			</pre>
                    </div>
         	
         	
         <p>Si lo que tenemos en pantalla es &uacute;nicamente es el fichero XML que intercambian InformeJasper.php y InformeJasper.class es
            que ya hemos corregido el error y en este caso debemos abandonar el modo de depuraci&oacute;n volviendo a colocar en el fichero include/jasper/modulosPHP/informeJasper.PHP
            la linea define('DEBUG', FALSE);
         </p>
           
      </div>
      <div class="navfooter">
         <hr>
         <table width="100%" summary="Navigation footer">
            <tr>
               <td width="40%" align="left"><a accesskey="p" href="apc.html">Anterior</a>&nbsp;
               </td>
               <td width="20%" align="center"><a accesskey="u" href="apc.html">Subir</a></td>
               <td width="40%" align="right">&nbsp;<a accesskey="n" href="apcs03.html">Siguiente</a></td>
            </tr>
            <tr>
               <td width="40%" align="left" valign="top">Ap&eacute;ndice C. Listados Jasper en gvHIDRA&nbsp;</td>
               <td width="20%" align="center"><a accesskey="h" href="indice.html">Inicio</a></td>
               <td width="40%" align="right" valign="top">&nbsp;C.3. Recomendaciones y generalidades sobre integraci&oacute;n gvHidra y Jasper</td>
            </tr>
         </table>
      </div>
   </body>
</html>